From: Quan Xu Date: Thu, 15 Jan 2015 09:21:51 +0000 (-0500) Subject: vTPM/TPM2: Bind group keys and sectors data on disk X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~3833 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=b80533f680b4dbdb6ff8e5ed2ace6cffe79198d1;p=xen.git vTPM/TPM2: Bind group keys and sectors data on disk Signed-off-by: Quan Xu Acked-by: Daniel De Graaf --- diff --git a/stubdom/vtpmmgr/disk_write.c b/stubdom/vtpmmgr/disk_write.c index 4c825c5af6..ab15a9aa81 100644 --- a/stubdom/vtpmmgr/disk_write.c +++ b/stubdom/vtpmmgr/disk_write.c @@ -88,7 +88,12 @@ static void generate_group_seals(struct mem_group *src, const struct mem_tpm_mgr dst->pcr_selection = src->seals[i].pcr_selection; memcpy(&dst->digest_release, &src->seals[i].digest_release, 20); TPM_pcr_digest(&dst->digest_at_seal, dst->pcr_selection); - TPM_disk_seal(dst, &sblob, sizeof(sblob)); + + /*TPM 2.0 bind | TPM 1.x seal*/ + if (hw_is_tpm2()) + TPM2_disk_bind(dst, &sblob, sizeof(sblob)); + else + TPM_disk_seal(dst, &sblob, sizeof(sblob)); } src->seal_bits.nr_cfgs = native_be32(src->nr_seals); @@ -250,7 +255,11 @@ static void disk_write_seal_list(struct mem_tpm_mgr *mgr, struct mem_group *grou memcpy(&dst->digest_release, &src->digest_release, 20); TPM_pcr_digest(&dst->digest_at_seal, dst->pcr_selection); - TPM_disk_seal(dst, &sblob, sizeof(sblob)); + /*TPM 2.0 bind / TPM 1.x seal*/ + if (hw_is_tpm2()) + TPM2_disk_bind(dst, &sblob, sizeof(sblob)); + else + TPM_disk_seal(dst, &sblob, sizeof(sblob)); } memcpy(seal->hdr.magic, TPM_MGR_MAGIC, 12);